﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Ferreteria.Forms.Gestion_de_Proveedores;

namespace Ferreteria.Forms
{
    public partial class FrmProvPreciosVenta : Form
    {
        DataTable dtArtCompradelProv;
        
        DisancoEntities context;
        int ProvSelec;

        public FrmProvPreciosVenta(Proveedores Prov)
        {
            InitializeComponent();
            lblnombreProv.Text = Prov.prov_nombre;
            ProvSelec = Prov.prov_id;
            CargarGrilla();

            dgvArtCompra.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCellsExceptHeader;
            dgvArtCompra.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            dgvArtCompra.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

        }

        //Funciones

        public void CargarGrilla()
        {
            using (context = new DisancoEntities(Ferreteria.Clases.Constantes.cadenaConexion))
            {
                //dgvProvxArt.Rows.Clear();
                ////Busca los Articulos del Proveedor en ProvxArt
                //var articulosdelProv = from articulos in context.ProveedoresxArticulos
                //                       where articulos.prov_id.Equals(ProvSelec)
                //                       select articulos;

                /////////lo nuevo

                //dgvArtCompra.Rows.Clear();
                //Busca los Articulos de Compra del Proveedor en el CatalogoProv
                var artcompradelProv = from articulosc in context.CatalogoProv
                                       where articulosc.provid.Equals(ProvSelec)
                                       select articulosc;

                //Lleno la Grilla con los Articulos de compra del Proveedor
                dtArtCompradelProv = new DataTable();
                dtArtCompradelProv.Columns.Add("id");
                dtArtCompradelProv.Columns.Add("Codigo");
                dtArtCompradelProv.Columns.Add("idarticuloc");
                dtArtCompradelProv.Columns.Add("Articulo");
                dtArtCompradelProv.Columns.Add("Precio Venta Proveedor");
                dtArtCompradelProv.Columns.Add("Bonificación del Proveedor");
                dtArtCompradelProv.Columns.Add("Precio Venta Bonificado Proveedor");

                try
                {
                    //foreach (var ProvxArt in articulosdelProv)
                    //{
                    //    int i = dgvProvxArt.Rows.Add();

                    //    dgvProvxArt.Rows[i].Cells["art_id"].Value = ProvxArt.art_id;
                    //    dgvProvxArt.Rows[i].Cells["art_nombre"].Value = ProvxArt.Articulos.art_nombre;
                    //    dgvProvxArt.Rows[i].Cells["art_precio_lista"].Value = ProvxArt.prov_art_precio;
                    //    dgvProvxArt.Rows[i].Cells["art_bonif"].Value = ProvxArt.prov_art_bonif;
                    //    dgvProvxArt.Rows[i].Cells["art_precio_bonificado"].Value = ProvxArt.prov_art_precio_bonificado;

                        
                    //}
                    foreach (var ProvxArtc in artcompradelProv)
                    {
                        DataRow dtfila = dtArtCompradelProv.NewRow();

                        dtfila["id"] = ProvxArtc.idcatalogo;
                        dtfila["Codigo"] = ProvxArtc.ArticulosdeCompra.artc_codigo;
                        dtfila["idarticuloc"] = ProvxArtc.ArticulosdeCompra.artc_id;
                        dtfila["Articulo"] = ProvxArtc.ArticulosdeCompra.artc_descripcion;
                        dtfila["Precio Venta Proveedor"] = "$ " + ProvxArtc.catalogoprecioart;
                        dtfila["Bonificación del Proveedor"] = "% " + ProvxArtc.catalogobonifart;
                        dtfila["Precio Venta Bonificado Proveedor"] = "$ " + ProvxArtc.catalogopreciobon;
                        dtArtCompradelProv.Rows.Add(dtfila);
                    }
                       
                    dgvArtCompra.DataSource = dtArtCompradelProv;
                    dgvArtCompra.Columns["id"].Visible = false;
                    dgvArtCompra.Columns["idarticuloc"].Visible = false;

                    dgvArtCompra.Columns["Articulo"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
                    dgvArtCompra.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    dgvArtCompra.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;


                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
                VerificarBotones();
               


            }
        }

        private void VerificarBotones()
        {
            if (dgvArtCompra.SelectedRows.Count > 0)
            {
                btnDelArt.Enabled = true;
                btnEditarArticulos.Enabled = true;
                btnVariarBonif.Enabled = true;
               
               
            }
            else
            {
                btnDelArt.Enabled = false;
                btnEditarArticulos.Enabled = false;
                btnVariarBonif.Enabled = false;
            }

        }

        //Eventos
        
        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnEditarArticulos_Click(object sender, EventArgs e)
        {
            //lo nuevoo 
            if (dgvArtCompra.SelectedRows != null)
            {
                DataGridViewSelectedRowCollection filasSelec = dgvArtCompra.SelectedRows;
                
                FrmEditarArtdelProv editarArtdelProveedor = new FrmEditarArtdelProv(filasSelec, ProvSelec);
                editarArtdelProveedor.ShowDialog();
                
                VerificarBotones();
            
            
            //lo anterior que andaba
            //if (dgvProvxArt.SelectedRows != null)
            //{
            //    DataGridViewSelectedRowCollection filasSelec = dgvProvxArt.SelectedRows;

            //    FrmEditarArtdelProv editarArtdelProveedor = new FrmEditarArtdelProv(filasSelec, ProvSelec);
            //    editarArtdelProveedor.ShowDialog();
            // hasta aca lo q andaba


                //if (filasSelec.Count > 1)
                //{
                //    FrmEditarArtdelProv editarArtdelProveedor = new FrmEditarArtdelProv(filasSelec, ProvSelec);
                //    editarArtdelProveedor.ShowDialog();
                //}
                //else
                //{
                //    int id = Convert.ToInt32(filasSelec[0].Cells["art_id"].Value);
                //    FrmEditarUnArtdelProv EditarunArtdelProv = new FrmEditarUnArtdelProv(id, ProvSelec);
                //    EditarunArtdelProv.ShowDialog();
                //}

                CargarGrilla();
            }
            else
            {
                MessageBox.Show("No hay articulos seleccionados");
            }
        }

        private void btnAddArt_Click(object sender, EventArgs e)
        {
            FrmAddArtCatalogoCompra addartCatalogo = new FrmAddArtCatalogoCompra(ProvSelec);
            addartCatalogo.Owner = this;
            addartCatalogo.ShowDialog();
            CargarGrilla();
           
            //FrmAgregarArticulos addArt = new FrmAgregarArticulos(ProvSelec);
            //addArt.Owner = this;
            //addArt.ShowDialog();
            //CargarGrilla();
        }

        private void btnSalir_Click_1(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnDelArt_Click(object sender, EventArgs e)
        {
            DeleteArtCompra();

            //if (dgvProvxArt.SelectedRows.Count > 0)
            //{
            //    using (context = new DisancoEntities(Ferreteria.Clases.Constantes.cadenaConexion))
            //    {
            //        var dr = MessageBox.Show("¿Seguro que desea eliminar los articulos seleccionados de la lista de este proveedor?", "Confirmar operación", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            //        if (dr == System.Windows.Forms.DialogResult.Yes)
            //        {
            //            try
            //            {
            //                foreach (DataGridViewRow fila in dgvProvxArt.SelectedRows)
            //                {
            //                    var artId = (int)fila.Cells["art_id"].Value;

            //                    var art = context.ProveedoresxArticulos.FirstOrDefault(p => p.art_id == artId && p.prov_id == ProvSelec);

            //                    if (art != null)
            //                    {
            //                        context.ProveedoresxArticulos.DeleteObject(art);
            //                    }
            //                }

            //                context.SaveChanges();
            //                MessageBox.Show("Articulos eliminados con exito");
            //                CargarGrilla();
            //            }
            //            catch (Exception err)
            //            {
            //                MessageBox.Show(err.ToString());
            //            }
            //        }
            //    }
            //}
        }

        private void DeleteArtCompra()
        {
            if (dgvArtCompra.SelectedRows.Count > 0)
            {
                using (context = new DisancoEntities(Ferreteria.Clases.Constantes.cadenaConexion))
                {
                    var dr = MessageBox.Show("¿Seguro que desea eliminar los articulos seleccionados de la lista de este proveedor?", "Confirmar operación", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

                    if (dr == System.Windows.Forms.DialogResult.Yes)
                    {
                        try
                        {
                            foreach (DataGridViewRow fila in dgvArtCompra.SelectedRows)
                            {
                                int artId = Convert.ToInt32(fila.Cells["id"].Value);

                                var art = context.CatalogoProv.FirstOrDefault(p => p.idcatalogo == artId && p.provid == ProvSelec);

                                if (art != null)
                                {
                                    context.CatalogoProv.DeleteObject(art);

                                }
                            }

                            context.SaveChanges();
                            MessageBox.Show("Articulos eliminados con exito");
                            CargarGrilla();
                        }
                        catch (Exception err)
                        {
                            MessageBox.Show(err.ToString());
                        }
                    }
                }
            }
        }

        private void btnVariarBonif_Click(object sender, EventArgs e)
        {
            //decimal bonif = (decimal)dgvProvxArt.CurrentRow.Cells["art_bonif"].Value * 100;
            //int artId = (int)dgvProvxArt.CurrentRow.Cells["art_id"].Value;

            FrmVariarBonif varBonif = new Gestion_de_Proveedores.FrmVariarBonif(ProvSelec, dgvArtCompra.SelectedRows);
            varBonif.ShowDialog();

            CargarGrilla();
            VerificarBotones();
        }

        private void dgvArtCompra_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //VerificarBotones();
            //dgvArtCompra.CurrentRow.DefaultCellStyle.BackColor = Color.Green;
            //dgvArtCompra.CurrentRow.DefaultCellStyle.SelectionBackColor = Color.DarkGreen;
        }

        private void btnBuscarArtExistente_Click(object sender, EventArgs e)
        {
            Ferreteria.Forms.Gestion_de_Proveedores.FrmAgregarArticulos BuscarExistente = new Ferreteria.Forms.Gestion_de_Proveedores.FrmAgregarArticulos(ProvSelec);
            BuscarExistente.ShowDialog();
            CargarGrilla();
        }

        private void dgvArtCompra_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            VerificarBotones();
            dgvArtCompra.CurrentRow.DefaultCellStyle.BackColor = Color.Green;
            dgvArtCompra.CurrentRow.DefaultCellStyle.SelectionBackColor = Color.DarkGreen;
        }

        
    }
}
